home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / INTERNET / SITES / GRAHAM / XA_6S.ZIP / SOURCE / K_DEFS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-11  |  16.3 KB  |  627 lines

  1. /*
  2.  * XaAES - XaAES Ain't the AES
  3.  *
  4.  * A multitasking AES replacement for MiNT
  5.  *
  6.  */
  7.  
  8. /*
  9.     Definitions for the standard GEM application data structures
  10.     taken out of the AESBIND.H standard header
  11. */
  12.  
  13. #ifndef _K_DEFS_H_
  14. #define _K_DEFS_H_
  15.  
  16. #ifdef __PUREC__
  17. #define far
  18. #define __regargs
  19. #define __saveds
  20. #define short    int
  21.  
  22. /* Switch off some of PC's warning messages */
  23. #pragma warn -aus    /* 'foo' is assigned a value which is never used */
  24. #pragma warn -rch    /* Unreachable code */
  25. #pragma warn -stv    /* Structure passed by value */
  26. #pragma warn -use    /* 'foo' declared but never used */
  27. #pragma warn -cln    /* Constant is long */
  28. #pragma warn -par    /* Parameter 'foo' is never used */
  29.  
  30. #endif /* __PUREC__ */
  31.  
  32.  
  33. #include "XA_DEFS.H"
  34.  
  35. /* Event library definitions */
  36. #define MU_KEYBD    0x0001
  37. #define MU_BUTTON    0x0002
  38. #define MU_M1        0x0004
  39. #define MU_M2        0x0008
  40. #define MU_MESAG    0x0010
  41. #define MU_TIMER    0x0020
  42.  
  43. #define K_RSHIFT    0x0001
  44. #define K_LSHIFT    0x0002
  45. #define K_CTRL        0x0004
  46. #define K_ALT        0x0008
  47.  
  48. #define MN_SELECTED    10
  49.  
  50. #define SCR_MGR     0x0001    /* process id of the screen manager - this is redundant */
  51.                             /* and will probably require a kludge to redirect it to the */
  52.                             /* 'real' desktop (check the AVSERVER variable?) */
  53. #define AP_MSG           0
  54.  
  55. #define WM_REDRAW    20
  56. #define WM_TOPPED    21
  57. #define WM_CLOSED    22
  58. #define WM_FULLED    23
  59. #define WM_ARROWED    24
  60. #define WM_HSLID    25
  61. #define WM_VSLID    26
  62. #define WM_SIZED    27
  63. #define WM_MOVED    28
  64. #define WM_NEWTOP    29
  65. #define WM_UNTOPPED    30
  66. #define WM_ONTOP    31
  67. #define WM_OFFTOP    32
  68. #define PR_FINISH    33        /* What is PR_FINISH? It has the same number as WM_BOTTOMED... */
  69. #define WM_BOTTOMED    33
  70. #define WM_BOTTOM    33
  71.  
  72. #define WM_ICONIFY            34
  73. #define WM_UNICONIFY        35
  74. #define WM_ALLICONIFY        36
  75.  
  76. #define AC_OPEN        40
  77. #define AC_CLOSE    41
  78.  
  79. #define AP_TERM         50
  80. #define AP_TFAIL        51
  81. #define AP_RESCHG       57
  82. #define SHUT_COMPLETED  60
  83. #define RESCH_COMPLETED 61
  84.  
  85. #define CH_EXIT         80
  86.  
  87. #define CT_UPDATE    50
  88. #define CT_MOVE        51
  89. #define CT_NEWTOP    52
  90. #define CT_KEY        53
  91.  
  92. /* Drag'n'Drop */
  93. #define AP_DRAGDROP            63
  94. #define    DD_OK                0
  95. #define DD_NAK                1
  96. #define DD_EXT                2
  97. #define DD_LEN                3
  98. #define DD_TRASH            4
  99. #define DD_PRINTER            5
  100. #define DD_CLIPBOARD        6
  101. #define DD_TIMEOUT            4000    /* timeout in milliseconds */
  102. #define DD_NUMEXTS            8
  103. #define DD_EXTSIZE            32L
  104. #define DD_NAMEMAX            128        /* max size of a drag&drop item name */
  105. #define DD_HDRMAX            (8+DD_NAMEMAX)    /* max length of a drag&drop header */
  106.  
  107. #define WA_UPPAGE    0
  108. #define WA_DNPAGE    1
  109. #define WA_UPLINE    2
  110. #define WA_DNLINE    3
  111. #define WA_LFPAGE    4
  112. #define WA_RTPAGE    5
  113. #define WA_LFLINE    6
  114. #define WA_RTLINE    7
  115.  
  116. typedef struct moblk
  117. {
  118.     short m_out;
  119.     short m_x;
  120.     short m_y;
  121.     short m_w;
  122.     short m_h;
  123. } MOBLK;
  124.  
  125. /* Object library definitions */
  126. #define ROOT        0
  127. #define NIL            -1
  128.  
  129. #define MAX_DEPTH    8    /* max depth of search or draw */
  130.  
  131. #define IP_HOLLOW    0    /* inside patterns */
  132. #define IP_1PATT    1
  133. #define IP_2PATT    2
  134. #define IP_3PATT    3
  135. #define IP_4PATT    4
  136. #define IP_5PATT    5
  137. #define IP_6PATT    6
  138. #define IP_SOLID    7
  139.                            /* system foreground and */
  140.                            /*   background rules    */
  141. #define SYS_FG      0x1100 /*   but transparent     */
  142.  
  143. #define WTS_FG      0x11a1 /* window title selected */
  144.                            /*   using pattern 2 &   */
  145.                            /*   replace mode text   */
  146. #define WTN_FG      0x1100 /* window title normal   */
  147.  
  148. #define IBM            3    /* font types */
  149. #define SMALL        5
  150.  
  151. #define G_BOX        20    /* Graphic types of obs    */
  152. #define G_TEXT        21
  153. #define G_BOXTEXT    22
  154. #define G_IMAGE        23
  155. #define G_PROGDEF    24
  156. #define    G_USERDEF    G_PROGDEF
  157. #define G_IBOX        25
  158. #define G_BUTTON    26
  159. #define G_BOXCHAR    27
  160. #define G_STRING    28
  161. #define G_FTEXT        29
  162. #define G_FBOXTEXT    30
  163. #define G_ICON        31
  164. #define G_TITLE        32
  165. #define G_CICON         33
  166.  
  167. #define G_SLIST        34    /* XaAES extended object - scrolling list */
  168.  
  169. #define G_MAX        40    /* Maximum number of object types */
  170.  
  171. #define NONE        0x0000    /* Object flags    */
  172. #define SELECTABLE    0x0001
  173. #define DEFAULT        0x0002
  174. #define EXIT        0x0004
  175. #define EDITABLE    0x0008
  176. #define RBUTTON        0x0010
  177. #define LASTOB        0x0020
  178. #define TOUCHEXIT    0x0040
  179. #define HIDETREE    0x0080
  180. #define INDIRECT    0x0100
  181. #define FLD3DIND    0x0200    /* AES3.3 and over extended object flags for 3d widgets */
  182. #define FLD3DBAK    0x0400    /* Atari Compendium mixes up FLD3DACT & FLD3DBAK */
  183. #define FLD3DACT    0x0600
  184. #define FLD3DANY    0x0600
  185. #define SUBMENU        0x0800
  186.  
  187. #define NORMAL        0x0000    /* Object states */
  188. #define SELECTED    0x0001
  189. #define CROSSED        0x0002
  190. #define CHECKED        0x0004
  191. #define DISABLED    0x0008
  192. #define OUTLINED    0x0010
  193. #define SHADOWED    0x0020
  194. #define SPECIAL        0x0040    /* user defined object state */
  195. #define WHITEBAK    0x0040
  196. #define DRAW3D      0x0080
  197.  
  198. #define IS_EDIT     0x8000    /* XaAES special - this object has the text focus */
  199.  
  200. #define WHITE        0    /* Object colors */
  201. #define BLACK        1
  202. #define RED        2
  203. #define GREEN        3
  204. #define BLUE        4
  205. #define CYAN        5
  206. #define YELLOW        6
  207. #define MAGENTA        7
  208. #define LWHITE        8
  209. #define LBLACK        9
  210. #define LRED        10
  211. #define LGREEN        11
  212. #define LBLUE        12
  213. #define LCYAN        13
  214. #define LYELLOW        14
  215. #define LMAGENTA    15
  216.  
  217. #define TE_LEFT        0    /* editable text justification */
  218. #define TE_RIGHT    1
  219. #define TE_CNTR        2
  220.  
  221. /* From Atari Compendium - not sure if the bitfield stuff works properly with
  222.    GNU or Pure C, but it's fine with Lattice */
  223. typedef struct objc_colorword
  224. {
  225.     unsigned short borderc:4;
  226.     unsigned short textc:4;
  227.     unsigned short opaque:1;
  228.     unsigned short pattern:3;
  229.     unsigned short fillc:4;
  230. } OBJC_COLORWORD;
  231.  
  232. typedef struct object
  233. {
  234.     short ob_next;
  235.     short ob_head;
  236.     short ob_tail;
  237.     unsigned short ob_type;
  238.     unsigned short ob_flags;
  239.     unsigned short ob_state;
  240.     void *ob_spec;
  241.     short ob_x;
  242.     short ob_y;
  243.     short ob_width;
  244.     short ob_height;
  245. } OBJECT;
  246.  
  247. typedef struct text_edinfo
  248. {
  249.     char *te_ptext;
  250.     char *te_ptmplt;
  251.     char *te_pvalid;
  252.     short te_font;
  253.     short te_fontid;        /* AES 4.1 extension */
  254.     short te_just;
  255.     short te_color;
  256.     short te_fontsize;        /* AES 4.1 extension */
  257.     short te_thickness;
  258.     short te_txtlen;
  259.     short te_tmplen;
  260. } TEDINFO;
  261.  
  262. /* AES 4.1 extended te_font types */
  263. #define TE_GDOS_PROP    0    /* Use a proportional SPEEDOGDOS font */
  264. #define TE_GDOS_MONO    1    /* Use a monospaced SPEEDOGDOS font */
  265. #define TE_GDOS_BITM    2    /* Use a GDOS bitmap font */
  266. #define TE_STANDARD        3    /* Use the standard system font (10 point) */
  267. #define TE_SMALL        5    /* Use the small syatem font (8 point) */
  268.  
  269. typedef struct icon_block
  270. {
  271.     short *ib_pmask;
  272.     short *ib_pdata;
  273.     char *ib_ptext;
  274.     short ib_char;
  275.     short ib_xchar;
  276.     short ib_ychar;
  277.     short ib_xicon;
  278.     short ib_yicon;
  279.     short ib_wicon;
  280.     short ib_hicon;
  281.     short ib_xtext;
  282.     short ib_ytext;
  283.     short ib_wtext;
  284.     short ib_htext;
  285. } ICONBLK;
  286.  
  287. typedef struct cicon_data
  288. {
  289.     short num_planes;                            /* number of planes in the following data          */
  290.     short *col_data;                            /* pointer to color bitmap in standard form        */
  291.     short *col_mask;                            /* pointer to single plane mask of col_data        */
  292.     short *sel_data;                            /* pointer to color bitmap of selected icon        */
  293.     short *sel_mask;                            /* pointer to single plane mask of selected icon   */
  294.     struct cicon_data *next_res;    /* pointer to next icon for a different resolution */
  295. }    CICON;
  296.  
  297. typedef struct cicon_blk
  298. {
  299.     ICONBLK monoblk;        /* default monochrome icon                         */
  300.     CICON *mainlist;        /* list of color icons for different resolutions */
  301. }    CICONBLK;
  302.  
  303. typedef struct bit_block
  304. {
  305.     short *bi_pdata;
  306.     short bi_wb;
  307.     short bi_hl;
  308.     short bi_x;
  309.     short bi_y;
  310.     short bi_color;
  311. } BITBLK;
  312.  
  313. typedef struct parm_blk
  314. {
  315.     OBJECT *pb_tree;
  316.     short pb_obj;
  317.     short pb_prevstate;
  318.     short pb_currstate;
  319.     short pb_x;
  320.     short pb_y;
  321.     short pb_w;
  322.     short pb_h;
  323.     short pb_xc;
  324.     short pb_yc;
  325.     short pb_wc;
  326.     short pb_hc;
  327.     long pb_parm;
  328. } PARMBLK;
  329.  
  330. typedef struct appl_blk
  331. {
  332.     int (*__stdargs ab_code)(PARMBLK *);
  333.     long ab_parm;
  334. } APPLBLK;
  335.  
  336. /* New structures for scrolled list objects */
  337. typedef struct scroll_entry
  338. {
  339.     char *text;                    /* text to display */
  340.     OBJECT *icon;                /* icon/object to display to the left of text (if any) */
  341.     struct scroll_entry *next;    /* next element */
  342.     struct scroll_entry *prev;    /* previous element */
  343. } SCROLL_ENTRY;
  344.  
  345. typedef struct scroll_info
  346. {
  347.     SCROLL_ENTRY *scrl_start;    /* pointer to first element */
  348.     SCROLL_ENTRY *scrl_current;    /* pointer to current selected element */
  349.     SCROLL_ENTRY *scrl_dstart;    /* pointer to top-most displayed element */
  350.     char *scrl_title;            /* title of the list */
  351.     short scrl_count;            /* number of elements in the list */
  352.     OBJC_COLORWORD scrl_colour;    /* usual AES format colour word */
  353.     short scrl_status;                /* extended status info for scroll list */
  354.     short (*__stdargs scrl_f_dclick)(OBJECT *,short);    /* callback function for double click behaviour */
  355.     short (*__stdargs scrl_f_click)(OBJECT *,short);    /* callback function for single click behaviour */
  356. } SCROLL_INFO;
  357.  
  358. /* SCROLL_INFO .status bits */
  359. #define SCRLSTAT_UP        1        /* Scroll up is clicked on */
  360. #define SCRLSTAT_DOWN    2        /* Scroll down is clicked on */
  361. #define SCRLSTAT_SCROLL    4        /* Scroller drag is clicked on */
  362. #define SCRLSTAT_RDB    8        /* Redraw buttons only */
  363.  
  364. typedef struct grect
  365. {
  366.     short g_x;
  367.     short g_y;
  368.     short g_w;
  369.     short g_h;
  370. } GRECT;
  371.  
  372. /* Form library definitions */
  373. #define ED_START    0    /* editable text field definitions */
  374. #define EDSTART    ED_START
  375. #define ED_INIT    1
  376. #define EDINIT    ED_INIT
  377. #define ED_CHAR    2
  378. #define EDCHAR    ED_CHAR
  379. #define ED_END    3
  380. #define EDEND    ED_END
  381.  
  382. #define FMD_START    0
  383. #define FMD_GROW    1
  384. #define FMD_SHRINK    2
  385. #define FMD_FINISH    3
  386.  
  387. /* Graphics library definitions */
  388. #define    ARROW        0
  389. #define    TEXT_CRSR    1
  390. #define    HOURGLASS    2
  391. #define    BUSYBEE    HOURGLASS
  392. #define    BUSY_BEE    HOURGLASS
  393. #define    POINT_HAND    3
  394. #define    FLAT_HAND    4
  395. #define    THIN_CROSS    5
  396. #define    THICK_CROSS    6
  397. #define    OUTLN_CROSS    7
  398. #define    USER_DEF    255
  399. #define M_OFF        256
  400. #define M_ON        257
  401. #define M_PUSH         100
  402. #define M_POP          101
  403.  
  404. #define VERTICAL    0
  405. #define HORIZONTAL    1
  406.  
  407. /* Scrap library definitions */
  408. #define scrp_read(a)    (_AESaddrin[0]=a,_AESif(280))
  409. #define scrp_write(a)    (_AESaddrin[0]=(void *)(a),_AESif(284))
  410. #define SCRAP_CSV   0x0001
  411. #define SCRAP_TXT   0x0002
  412. #define SCRAP_GEM   0x0004
  413. #define SCRAP_IMG   0x0008
  414. #define SCRAP_DCA   0x0010
  415. #define SCRAP_USR   0x8000
  416.  
  417. /* Window library definitions */
  418. #define NAME        0x0001
  419. #define CLOSE        0x0002
  420. #define CLOSER        CLOSE
  421. #define FULL        0x0004
  422. #define FULLER        FULL
  423. #define MOVE        0x0008
  424. #define MOVER        MOVE
  425. #define INFO        0x0010
  426. #define SIZE        0x0020
  427. #define SIZER        SIZE
  428. #define UPARROW        0x0040
  429. #define DNARROW        0x0080
  430. #define VSLIDE        0x0100
  431. #define LFARROW        0x0200
  432. #define RTARROW        0x0400
  433. #define HSLIDE        0x0800
  434. #define SMALLER        0x4000
  435.  
  436. /* Extended XaAES Attributes */
  437. #define STORE_BACK    0x80000000L    /* Store the background of a window & don't generate redraw  */
  438.                                 /* messages to windows below */
  439. #define NO_WORK        0x40000000L    /* A window with no work area */
  440. #define NO_REDRAWS    0x20000000L    /* Don't generate WM_REDRAW messages to the owner app */
  441. #define NO_MESSAGES    0x30000000L    /* Don't generate any messages at all to the owner app */
  442.  
  443.  
  444.  
  445. #define WF_RETURN        1
  446. #define WF_KIND            1
  447. #define WF_NAME         2
  448. #define WF_INFO         3
  449. #define WF_WXYWH        4
  450. #define WF_WORKXYWH        WF_WXYWH
  451. #define WF_CXYWH        5
  452. #define WF_CURRXYWH        WF_CXYWH
  453. #define WF_PXYWH        6
  454. #define WF_PREVXYWH        WF_PXYWH
  455. #define WF_FXYWH        7
  456. #define WF_FULLXYWH        WF_FXYWH
  457. #define WF_HSLIDE        8
  458. #define WF_VSLIDE        9
  459. #define WF_TOP            10
  460. #define WF_FIRSTXYWH    11
  461. #define WF_NEXTXYWH        12
  462. #define WF_IGNORE        13
  463. #define WF_NEWDESK        14
  464. #define WF_HSLSIZE        15
  465. #define WF_HSLSIZ        WF_HSLSIZE
  466. #define WF_VSLSIZE        16
  467. #define    WF_VSLSIZ        WF_VSLSIZE
  468. #define WF_SCREEN        17
  469. #define WF_COLOR        18
  470. #define WF_DCOLOR        19
  471. #define WF_OWNER        20
  472. #define WF_BEVENT       24
  473. #define WF_BOTTOM        25
  474. #define WF_ICONIFY            26
  475. #define WF_UNICONIFY        27
  476. #define WF_UNICONIFYXYWH    28
  477.  
  478. /* XaAES Special modes */
  479. #define WF_AUTOREDRAW        100
  480. #define WF_STOREBACK        101
  481. #define WF_WIDGET            102
  482.  
  483. /* keyboard focus policy */
  484.  
  485. #define FOCUS_MOUSE                1
  486.  
  487. /* XaAES extensions */
  488.  
  489. #define    END_UPDATE    0
  490. #define    BEG_UPDATE    1
  491. #define    END_MCTRL    2
  492. #define    BEG_MCTRL    3
  493. #define BEG_EMERG        4
  494. #define END_EMERG        5
  495.  
  496. #define WC_BORDER    0
  497. #define WC_WORK        1
  498.  
  499. #define DESK    0
  500.  
  501. #define    W_BOX        0
  502. #define W_TITLE        1
  503. #define W_CLOSER    2
  504. #define W_NAME        3
  505. #define W_FULLER    4
  506. #define W_INFO        5
  507. #define W_DATA        6
  508. #define W_WORK        7
  509. #define W_SIZER        8
  510. #define W_VBAR        9
  511. #define W_UPARROW    10
  512. #define W_DNARROW    11
  513. #define W_VSLlDE    12
  514. #define W_VELEV        13
  515. #define W_HBAR        14
  516. #define W_LFARROW    15
  517. #define W_RTARROW    16
  518. #define W_HSLIDE    17
  519. #define W_HELEV        18
  520.  
  521. /* Resource library definitions */
  522. #define R_TREE        0
  523. #define R_OBJECT    1
  524. #define R_TEDINFO    2
  525. #define R_ICONBLK    3
  526. #define R_BITBLK    4
  527. #define R_STRING    5    /* gets pointer to free strings */
  528. #define R_IMAGEDATA    6    /* gets pointer to free images */
  529. #define R_OBSPEC    7
  530. #define R_TEPTEXT    8    /* sub ptrs in TEDINFO */
  531. #define R_TEPTMPLT    9
  532. #define R_TEPVALID    10
  533. #define R_IBPMASK    11    /* sub ptrs in ICONBLK */
  534. #define R_IBPDATA    12
  535. #define R_IBPTEXT    13
  536. #define R_BIPDATA    14    /* sub ptrs in BITBLK */
  537. #define R_FRSTR        15    /* gets addr of ptr to free strings */
  538. #define R_FRIMG        16    /* gets addr of ptr to free images */
  539.  
  540. typedef struct
  541. {
  542.     short rsh_vrsn;            /* RCS version no. */
  543.     unsigned short rsh_object;    /* offset to object[] */
  544.     unsigned short rsh_tedinfo;    /* offset to tedinfo[] */
  545.     unsigned short rsh_iconblk;    /* offset to iconblk[] */
  546.     unsigned short rsh_bitblk;    /* offset to bitblk[] */
  547.     unsigned short rsh_frstr;        /* offset to free string index */
  548.     unsigned short rsh_string;    /* offset to first string */
  549.     unsigned short rsh_imdata;    /* offset to image data */
  550.     unsigned short rsh_frimg;        /* offset to free image index */
  551.     unsigned short rsh_trindex;    /* offset to object tree index */
  552.     short rsh_nobs;            /* number of objects */
  553.     short rsh_ntree;            /* number of trees */
  554.     short rsh_nted;            /* number of tedinfos */
  555.     short rsh_nib;            /* number of icon blocks */
  556.     short rsh_nbb;            /* number of blt blocks */
  557.     short rsh_nstring;        /* number of free strings */
  558.     short rsh_nimages;        /* number of free images */
  559.     unsigned short rsh_rssize;    /* total bytes in resource */
  560. } RSHDR;
  561.  
  562. /* AES parameter block */
  563. typedef struct {
  564.     short *contrl;
  565.     short *globl;
  566.     short *intin;
  567.     short *intout;
  568.     void  **addrin;
  569.     void  **addrout;
  570. } AESPB;
  571.  
  572. /*
  573.     XaAES/oAESis Extended Shell Write structure 
  574.     - extra fields for UID/GID setting of spawned clients.
  575. */
  576. typedef struct _xshelw {
  577.     char *newcmd;
  578.     long psetlimit;
  579.     long prenice;
  580.     char *defdir;
  581.     char *env;
  582.     short uid;            /* New child's UID */
  583.     short gid;            /* New child's GID */
  584. } XSHELW;
  585.  
  586. #define SW_PSETLIMIT    0x100
  587. #define SW_PRENICE        0x200
  588. #define SW_PDEFDIR        0x400
  589. #define SW_ENVIRON        0x800
  590. #define SW_UID             0x1000   /* Set user id of launched child */
  591. #define SW_GID            0x2000   /* Set group id of launched child */
  592.  
  593. /* Menu bar install/remove codes */
  594. #define MENU_REMOVE        0
  595. #define MENU_INSTALL    1
  596. #define MENU_INQUIRE    -1
  597.  
  598. /*------------------------------------------------------------ */
  599. /* SPECIAL XaAES stuff */
  600.  
  601. /* AES Command types */
  602. #define AESCMD_STD        0xc8        /* Standard blocking AES call (process blocks for reply) */
  603. #define AESCMD_TEST        0xc9        /* The 'secret' test for installed AES call */
  604. #define AESCMD_NOREPLY    0xca        /* Process isn't interested in reply so don't give one */
  605. #define AESCMD_NOBLOCK    0xcb        /* Don't block for reply, but place in process reply pipe */
  606.                                     /* -process is handling it's own reply pipe */
  607. #define VDICMD_STD        79            /* The trap was a VDI trap, so call the old vector instead */
  608.  
  609. /* Mouse Handler Fake Process */
  610. #define XAPID_MOUSE        0            /* As MiNT is always pid 0 and won't send XaAES any */
  611.                                     /* commands, I use id 0 to fake up a mouse server process */
  612.  
  613. /* Extra mouse forms */
  614. #define XACRS_BUBBLE_DISC    258        /* The Data Uncertain logo */
  615. #define XACRS_RESIZER        259        /* The 'resize window' cursor */
  616. #define XACRS_MOVER            260        /* The 'move window' cursor */
  617.  
  618. #define    CGd        0x01    /* numeric digit */
  619. #define CGa        0x02    /* alpha */
  620. #define    CGs        0x04    /* whitespace */
  621. #define    CGu        0x08    /* upper case */
  622. #define CGp     0x10    /* punctuation character */
  623. #define    CGdt    0x20    /* dot */
  624. #define    CGw        0x40    /* wild card */
  625. #define CGxp    0x80    /* extended punctuation */
  626.  
  627. #endif